Developers with experience targeting Windows Mobile devices of the past will find significant changes in Microsoft’s strategy for the Windows Phone 7. Microsoft has been extremely proactive in defining the hardware specification, often referred to as a “chassis.”
Initial releases of Windows Phone 7 devices will have one consistent screen
size. (A second screen size is expected in the future.) Many other
hardware features are guaranteed to exist on each device.
The front of the phone consists of a multi-touch display and three hardware buttons generally positioned in a row below the display. From left to right, these buttons are called Back, Start, and Search:
Back
Programs can use this button for their own navigation needs, much like
the Back button on a Web browser. From the home page of a program, the
button causes the program to terminate.
Start This button takes the user to the start screen of the phone; it is otherwise inaccessible to programs running on the phone.
Search The operating system uses this button to initiate a search feature.
The initial releases of Windows Phone 7 devices have a display
size of 480 x 800 pixels. In the future, screens of 320 x 480 pixels
are also expected. There are no other screen options for Windows Phone
7, so obviously these two screen sizes play a very important role in
phone development.
In theory, it’s usually
considered best to write programs that adapt themselves to any screen
size, but that’s not always possible, particularly with game
development. You will probably find yourself specifically targeting
these two screen sizes, even to the extent of having conditional code paths and different XAML files for layout that is size-dependent.
I will generally refer to
these two sizes as the “large” screen and the “small” screen. The
greatest common denominator of the horizontal and vertical dimensions of
both screens is 160, so you can visualize the two screens as multiples
of 160-pixel squares:
I’m showing these screens in portrait mode because that’s usually the way smartphones are designed. The screen of the original Zune is 240 x 320 pixels; the Zune HD is 272 x 480.
Of course, phones can be rotated to put the screen into landscape mode. Some programs might require the phone to be held in a certain orientation; others might be more adaptable.
You have complete control over the extent to which you support orientation. By default, Silverlight applications appear in portrait mode, but you’ll probably want to write your Silverlight applications so they adjust themselves to orientation changes. New events are available specifically for the purpose of detecting orientation
change, and some orientation shifts are handled automatically. In
contrast, game programmers can usually impose a particular orientation
on the user. XNA programs use landscape mode by default, but it’s easy
to override that.
In portrait mode, the small screen is half of an old VGA screen (that is, 640 x 480). In landscape mode, the large screen has a dimension sometimes called WVGA (“wide VGA”). In landscape mode, the small screen has an aspect
ratio of 3:2 or 1.5; the large screen has an aspect ratio of 5:3 or
1.66…. Neither of these matches the aspect ratio of television, which
for standard definition is 4:3 or 1.33… and for high-definition is 16:9
or 1.77…. The Zune HD screen has an aspect ratio of 16:9.
Like many recent phones and the Zune HD, the Windows Phone 7 displays will likely use OLED (“organic light emitting diode”) technology, although this isn’t a hardware requirement. OLEDs are different from flat displays of the past in that power
consumption is proportional to the light emitted from the display. For
example, an OLED display consumes less than half the power of an LCD
display of the same size, but only when the screen is mostly black. For
an all-white screen, an OLED consumes more than three times the power
of an LCD.
Because battery
life is extremely important on mobile devices, this characteristic of
OLED displays implies an aesthetic of mostly black backgrounds with
sparse graphics and light-stroked fonts. Regardless, Windows Phone 7
users can choose between two major color themes: light text on a dark background, or dark text on a light background.
Most user input to a Windows Phone 7 program will come through multi-touch. The screens incorporate capacitance-touch
technology, which means that they respond to a human fingertip but not
to a stylus or other forms of pressure. Windows Phone 7 screens are
required to respond to at least four simultaneous touch-points.
A hardware
keyboard is optional. Keep in mind that phones can be designed in
different ways, so when the keyboard is in use, the screen might be in
either portrait mode or landscape mode. A Silverlight program that uses keyboard input must respond to orientation
changes so that the user can both view the screen and use the keyboard
without wondering what idiot designed the program sideways. An on-screen keyboard is also provided, known in Windows circles as the Soft Input Panel or SIP. XNA programs also have access to the hardware keyboard and SIP.